二、SOLID 原则
SOLID 原则并非单纯的 1 个原则,而是由 5
个设计原则组成的,它们分别是:单一职责原则、开闭原则、里式替换原则、接口隔离原则和依赖反转原则,依次对应
SOLID 中的 S、O、L、I、D 这 5 个英文字母。
单一职责原则(SRP):A
class or module should have a single reponsibility
我们可以先写一个粗粒度的类,满足业务需求。随着业务的发展,如果粗粒度的类越来越庞大,代码越来越多,这个时候,我们就可以将这个粗粒度的类,拆分成几个更细粒度的类。这就是所谓的持续重构
存疑,在项目变复杂的情况下拆分类似乎代价也不小。
可参考的一些原则:
类中的代码行数、函数或属性过多,会影响代码的可读性和可维护性,我们就需要考虑对类进行拆分;
类依赖的其他类过多,或者依赖类的其他类过多,不符合高内聚、低耦合的设计思想,我们就需要考虑对类进行拆分;
私有方法过多,我们就要考虑能否将私有方法独立到新的类中,设置为public方法,供更多的类使用,从而提高代码的复用性;
比较难给类起一个合...
文献阅读核心要点梳理表
文献信息 - 标题: -
作者: - 年份/出处: -
阅读日期:
核心要点梳理
要点维度
核心问题
我的记录
1. 研究背景与问题
作者试图解决什么具体问题?为什么这个问题重要?
2. 创新点与价值
这篇论文的独特贡献是什么?(新方法、新理论、新发现?)
3. 理论基础
基于哪些已有理论?核心概念是如何定义的?
4. 研究方法
研究是如何设计的?(数据来源、实验步骤、分析工具?)
5. 核心发现
得到了什么关键数据、实验结果或分析结论?
6. 结论与讨论
这些发现意味着什么?是否回答了研究问题?
7. 局限与展望
作者承认了哪些局限性?提出了哪些未来方向?
8. 学术关联
这篇文献与我的研究有何关联?(支撑、启发、挑战?)
总结与思考
一句话总结:
启发与收获:
待查证/存疑之处:
文献信息
标题: Attention Is All You Need
作者: Ashish Vaswani, Noam Shazeer, Niki Parmar, et
al.
年份/出处: 2017, NIPS (现 NeurIPS)
阅读日期: 2025/10/07
核心要点梳理
要点维度
核心问题
我的记录
1. 研究背景与问题
作者试图解决什么具体问题?为什么这个问题重要?
主流的序列转换模型(如机器翻译)依赖于复杂的循环或卷积神经网络。这些模型的顺序计算特性(RNN需逐步计算)限制了训练时的并行能力,导致训练速度慢,尤其在长序列上。
2. 创新点与价值
这篇论文的独特贡献是什么?(新方法、新理论、新发现?)
提出了 Transformer
模型,其核心创新在于完全摒弃了循环和卷积结构,仅依赖自注意力机制来建模全局依赖关系。这不仅在翻译质量上达到了新高度,更重要的是实现了极强的并行化,大幅减少了训练时间。
3. 理论基础
基于哪些已有理论?核心概念是如何定义的...
学习周期与目标规划
第 1-2 周:补 OOP 基础和 SOLID 原则,看完《Head First 设计模式》前 5
章(核心创建型模式)。
第 3-4 周:学结构型模式,完成 “代理、装饰器、适配器”
的代码练习,并用它们重构一段旧代码。
第 5-6 周:学行为型模式,聚焦
“观察者、策略、模板方法”,在小项目中刻意使用至少 3 种模式。
第 7-8 周:回顾 23 种模式,整理 “模式对比表”(如 “装饰器 vs
代理”“工厂方法 vs 抽象工厂”),避免混淆。
长期:在工作 / 项目中,遇到问题时先思考
“是否有对应的设计模式”,逐步形成 “模式思维”。
一、OOP基础
面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石
。面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。
面向对象编程(OOP)。跟面向对象编程经常放到一块儿来讲的还有另外两个概念,那就是面向对象分...
密码学发展简史
密码编码原则:加密算法应建立在算法公开不影响铭文密钥的安全,即算法的安全性仅依赖于密钥的保密
1949 现代密码I 定义理论安全性和扩散、混淆原则 奠定密码学基础
1976-1994 现代密码II
1976:公钥密码被提出
1977:RSA公钥算法
1977:DES成为第一代公开的、完全说明的商业级密码标准
1994-至今
1994年,Shor提出量子计算机模型下分解大整数和求解离散对数的多项式时间算法使得之前的加密算法不再安全。
密码分析学(破译密码)
目标
恢复合法密文相应的明文
恢复密钥
攻击方法:
穷举攻击
增大密钥数量
统计分析攻击
设法使明文密文统计规律不同
解密变换攻击:
足够复杂的加密算法
密码体制攻击(破解难度从难到易)
唯密文攻击
最难破解,一般使用穷举搜索
已知明文攻击
知道一些明文和相应的密文
选择明文攻击
可以选择一些明文并得到相应的密文
选择密文攻击
选择一些密文并得到相应的明文
可利用解密算法和自己...
Hexo LaTeX数学公式渲染
帖子搬运自Hexo
LaTeX数学公式渲染
博主自大二(2023年)起开始使用hexo撰写博客,从最初连node环境都配不好的电脑小白到现在勉强算得上成功摆脱了赛博文盲这一称号的程度。但使用hexo有一个困扰了我很久的问题:Latex公式无法渲染。零零碎碎的尝试过很多帖子的方法,但都没能达成这一目的。今天终于找到了一个成功使得hexo能够渲染latex公式的方法
Hexo支持多种Markdown渲染引擎,其中对数学公式渲染支持最好的当属hexo-render-pandoc。因此,这里只介绍使用Pandoc渲染LaTeX数学公式的方法。
操作方法
首先在电脑本地安装 Pandoc
,并确保被添加在系统变量中。
博主使用的windows版本,下载了对应版本的zip压缩包后解压并放置到自己习惯的文件夹中
下载pandoc压缩包
打开环境变量
然后自己的电脑上配置环境变量,将pandoc所解压的文件夹的绝对路径加入系统变量中path值中
1.
卸载原有的渲染引擎 12npm uninsta...